using System;
using System.Collections.Generic;


namespace Gfw.Models.Account
{
	[Serializable]
	public partial class ActUserWarrant: IEquatable<ActUserWarrant>
	{

		#region Private Members

		private string _id; 
		private string _userid;
        private string _userloginname;
		private string _touserid; 
		private string _touserloginname; 
		private DateTime? _tradedate; 
		private string _bankname; 
		private string _bankcardno; 
		private string _bankusername; 
		private decimal _money;
        private DateTime? _transferorwithdrawdate;
		private DateTime? _ackdate; 
		private string _bankserialno; 
		private int _status; 
		private string _tradeabstract;
        private string _qq;
        private string _tel;
		#endregion

		#region Constructor

		public ActUserWarrant()
		{
			_id = String.Empty; 
			_userid = String.Empty;
            _userloginname = String.Empty;
			_touserid = String.Empty; 
			_touserloginname = String.Empty; 
			_tradedate = DateTime.MinValue; 
			_bankname = String.Empty; 
			_bankcardno = String.Empty; 
			_bankusername = String.Empty; 
			_money = 0;
            _transferorwithdrawdate = DateTime.MinValue;
			_ackdate = DateTime.MinValue; 
			_bankserialno = String.Empty; 
			_status = 0; 
			_tradeabstract = String.Empty;
            _tel = String.Empty;
            _qq = String.Empty; 
		}
		#endregion // End of Default ( Empty ) Class Constuctor

		#region Public Properties
			
		public virtual string Id
		{
			get
			{ 
				return _id;
			}

			set	
			{	
				if( value == null )
					throw new ArgumentOutOfRangeException("Null value not allowed for Id", value, "null");
				
				if(  value.Length > 40)
					throw new ArgumentOutOfRangeException("Invalid value for Id", value, value.ToString());
				
				_id = value;
			}
		}
			
		public virtual string Userid
		{
			get
			{ 
				return _userid;
			}

			set	
			{	
				if( value == null )
					throw new ArgumentOutOfRangeException("Null value not allowed for Userid", value, "null");
				
				if(  value.Length > 40)
					throw new ArgumentOutOfRangeException("Invalid value for Userid", value, value.ToString());
				
				_userid = value;
			}
		}

        public virtual string UserLoginName
        {
            get
            {
                return _userloginname;
            }

            set
            {
                if (value != null && value.Length > 60)
                    throw new ArgumentOutOfRangeException("Invalid value for UserLoginName", value, value.ToString());

                _userloginname = value;
            }
        }
			
		public virtual string ToUserId
		{
			get
			{ 
				return _touserid;
			}

			set	
			{	
				if(  value != null &&  value.Length > 40)
					throw new ArgumentOutOfRangeException("Invalid value for ToUserId", value, value.ToString());
				
				_touserid = value;
			}
		}
			
		public virtual string ToUserLoginName
		{
			get
			{ 
				return _touserloginname;
			}

			set	
			{	
				if(  value != null &&  value.Length > 60)
					throw new ArgumentOutOfRangeException("Invalid value for ToUserLoginName", value, value.ToString());
				
				_touserloginname = value;
			}
		}
			
		public virtual DateTime? TradeDate
		{
			get
			{ 
				return _tradedate;
			}
			set
			{
				_tradedate = value;
			}

		}
			
		public virtual string BankName
		{
			get
			{ 
				return _bankname;
			}

			set	
			{	
				if(  value != null &&  value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for BankName", value, value.ToString());
				
				_bankname = value;
			}
		}
			
		public virtual string BankCardNo
		{
			get
			{ 
				return _bankcardno;
			}

			set	
			{	
				if(  value != null &&  value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for BankCardNo", value, value.ToString());
				
				_bankcardno = value;
			}
		}
			
		public virtual string BankUserName
		{
			get
			{ 
				return _bankusername;
			}

			set	
			{	
				if(  value != null &&  value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for BankUserName", value, value.ToString());
				
				_bankusername = value;
			}
		}
			
		public virtual decimal Money
		{
			get
			{ 
				return _money;
			}
			set
			{
				_money = value;
			}

		}

        public virtual DateTime? TransferOrWithdrawDate
        {
            get
            {
                return _transferorwithdrawdate;
            }
            set
            {
                _transferorwithdrawdate = value;
            }

        }
			
		public virtual DateTime? AckDate
		{
			get
			{ 
				return _ackdate;
			}
			set
			{
				_ackdate = value;
			}

		}
			
		public virtual string BankSerialNo
		{
			get
			{ 
				return _bankserialno;
			}

			set	
			{	
				if(  value != null &&  value.Length > 50)
					throw new ArgumentOutOfRangeException("Invalid value for BankSerialNo", value, value.ToString());
				
				_bankserialno = value;
			}
		}
			
		public virtual int Status
		{
			get
			{ 
				return _status;
			}
			set
			{
				_status = value;
			}

		}
			
		public virtual string TradeAbstract
		{
			get
			{ 
				return _tradeabstract;
			}

			set	
			{	
				if(  value != null &&  value.Length > 256)
					throw new ArgumentOutOfRangeException("Invalid value for TradeAbstract", value, value.ToString());
				
				_tradeabstract = value;
			}
		}

        public virtual string Tel
        {
            get
            {
                return _tel;
            }

            set
            {
                if (value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for Tel", value, value.ToString());

                _tel = value;
            }
        }

        public virtual string Qq
        {
            get
            {
                return _qq;
            }

            set
            {
                if (value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for Qq", value, value.ToString());

                _qq = value;
            }
        }
			
				
		#endregion 

		#region Public Functions

		#endregion //Public Functions

		#region IEquatable members

		public virtual bool Equals(ActUserWarrant other)
		{
			if (other == this)
				return true;
		
			return ( other != null ) &&
				( this._id == other.Id );
				   
		}

		#endregion
		
	}
}
